package componentes;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.SystemColor;
import java.awt.Toolkit;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * @author Reynald0
 */
public abstract class CompVentana extends JFrame implements ActionListener
{
   private JLabel   lEncabezado;
   protected JPanel pContenido;
   protected JPanel pPie;
   protected JPanel pIzquierda;
   protected JPanel pDerecha;
   
   public CompVentana(String pEncabezado)
   {
      this(pEncabezado,false);
   }
   
   public CompVentana(String pEncabezado,boolean pPrincipal)
   {
      this(pEncabezado,pPrincipal,0,0);
   }
   
   public CompVentana(String pEncabezado,boolean pPrincipal,int pX,int pY)
   {
      this(pEncabezado,pPrincipal,pX,pY,Toolkit.getDefaultToolkit().getScreenSize().width,Toolkit.getDefaultToolkit().getScreenSize().height);
   }
   
   public CompVentana(String pEncabezado,boolean pPrincipal,int pX,int pY,int pAncho,int pLargo)
   {
      //---------------------- Propiedades del panel
      this.setResizable(false);
      this.setTitle(pEncabezado);
      this.setBounds(pX+(pPrincipal?0: 50),pY+(pPrincipal?0: 50),pAncho,pLargo);
      this.setDefaultCloseOperation(pPrincipal?EXIT_ON_CLOSE: DISPOSE_ON_CLOSE);
      this.setLayout(new BorderLayout());
      //-------------------------------- Encabezado
      lEncabezado=new JLabel(pEncabezado);
      lEncabezado.setHorizontalAlignment(JLabel.CENTER);
      lEncabezado.setBackground(pPrincipal? SystemColor.inactiveCaptionBorder: Color.blue);
      lEncabezado.setForeground(pPrincipal? Color.BLACK: Color.WHITE);
      lEncabezado.setOpaque(true);
      lEncabezado.setBorder(BorderFactory.createLineBorder(Color.BLACK));
      lEncabezado.setFont(new Font("Arial",Font.BOLD+Font.ITALIC,40));
      this.add(lEncabezado,BorderLayout.NORTH);
      //-------------------------------- Panel izquierdo
      pIzquierda = new JPanel(null);
      this.add(pIzquierda,BorderLayout.WEST);
      //-------------------------------- Panel Central
      pContenido = new JPanel(null);
      pContenido.setBackground(pPrincipal?Color.LIGHT_GRAY: this.getBackground());
      this.add(pContenido,BorderLayout.CENTER);
      //-------------------------------- Panel Derecho
      pDerecha = new JPanel(null);
      this.add(pDerecha,BorderLayout.EAST);
      //-------------------------------- Panel Inferior
      pPie=new JPanel(null);
      this.add(pPie,BorderLayout.SOUTH);
      pPie.setBackground(pPrincipal ? Color.YELLOW: Color.DARK_GRAY);
      this.add(pPie,BorderLayout.SOUTH);
      //-------------------------------- 
      crearContenido();
      this.setVisible(true);
   }
   
   protected abstract void crearContenido();
}